package com.shijie.log.recorder;

import com.shijie.log.formatter.ValueFormatter;
import com.shijie.log.util.FieldDiffLogUtil;
import lombok.extern.slf4j.Slf4j;

import java.util.List;

/**
 * 通用变更日志实现：默认适配chgs表，全局通用
 */
@Slf4j
public class ChgsLogRecorder implements DiffLogRecorder<FieldDiffLogUtil.FieldItem<?>> {

    @Override
    public void record(List<FieldDiffLogUtil.FieldItem<?>> changedFields) {
        // 批量转换为日志实体，插入chgs表
        changedFields.forEach(item ->
                log.info("插入 CHGS 日志，key：{}，旧值：{}，新值：{}",
                        item.fieldName(),
                        item.formatter().format(item.oldVal()),
                        item.formatter().format(item.newVal()))
        );
    }

    @Override
    public void record(String key, Object oldVal, Object newVal, ValueFormatter formatter) {
        log.info("插入 CHGS 日志，key：{}，旧值：{}，新值：{}", key, oldVal, newVal);
    }

}